using System;
using System.Collections.Generic;
using System.Text;
using Mpi.Common.Collections;
using System.ComponentModel;

namespace Xeml.Document.EnvironmentalOntology
{
    public class VariableContextSpec 
    {
        private TypeSpecification typeDefine;
        //private Unit defUnit;
        //private List<ConvertableUnit> units;


        string defValue;
        private DefaultCycle defCycle;

        private string name;
        private Dictionary<string, string> valueLabels;

        private string description;

        private UnitSet unitSet;

        public UnitSet UnitSet
        {
            get { return unitSet; }
            set { unitSet = value; }
        }


        public string Description
        {
            get { return description; }
            set { description = value; }
        }


        public Dictionary<string, string> ValueLabels
        {
            get { return valueLabels; }
            set { valueLabels = value; }
        }


        public string Name
        {
            get { return name; }
            set { name = value; }
        }





        public TypeSpecification TypeDefine
        {
            get
            {
                return this.typeDefine;
            }
            set
            {
                this.typeDefine = value;
            }
        }


        //public Unit DefaultUnit
        //{
        //    get
        //    {
        //        return this.defUnit;
        //    }
        //    set
        //    {
        //        this.defUnit = value;
        //    }
        //}


        //public System.Collections.Generic.List<ConvertableUnit> Units
        //{
        //    get
        //    {
        //        return this.units;
        //    }

        //}


        public string DefaultValue
        {
            get
            {
                return this.defValue;
            }
            set
            {
                this.defValue = value;
            }
        }

        public DefaultCycle DefaultCycle
        {
            get
            {
                return this.defCycle;
            }
            set
            {
                this.defCycle = value;
            }
        }

        public VariableContextSpec()
        {

        }


        private ContextSpecCollection collection;
        public ContextSpecCollection Collection
        {
            get
            {
                return this.collection;
            }
            set
            {
                if (value != collection)
                {
                    this.collection = value;
                }

            }
        }
    }
}
